A middlebox is a node in a communications network that is connected between two address realms in that communications network. An address realm is a region of the communications network in which each of the entities within that region have an address or identifier which is unique within that region and which is allocated according to a particular method. The term “address domain” is also used to refer to an address realm.
An example of a middlebox is a network address translator (NAT) which converts the unique addresses of one address realm into those of another address domain. Another example is a firewall which provides a secure connection between the two address realms and a further example is a quality of service regulation device which operates between the two address realms. Thus a middlebox is typically associated with a single address realm which it connects to one or more other address realms.
In order to carry out actions such as setting up a call from an entity in the address realm of one middlebox to an entity in the address realm of another middlebox, then a middlebox control node such as a call server is used. Previously, the middlebox control node has needed to have information about all the middleboxes and which address realms they are associated with. The middlebox control node is then able to use this information to control the particular middleboxes.
The information is typically pre-configured in the middlebox control node. However this method is disadvantageous. For example, if the information is pre-configured it is difficult to make changes to the middlebox locations or to add middleboxes without the need for the information at the middlebox control node to be updated. Also, if the middlebox information is statically configured it is not possible to cope with situations where different middleboxes are used depending on middlebox status, loading or call destination for example. The method is inflexible and unable to cope satisfactorily with situations in which the same user is connected to different middleboxes at different times (e.g. a mobile user).
Another method that has been considered involves using the source addresses of call signalling packets received at the middlebox control node from the middleboxes. These source addresses provide details of the middlebox addresses. However, this method does not work in situations where there are devices in the path between the middlebox and the middlebox control node. In addition, this method assumes that the same middlebox should be used for call signalling messages as for user messages (media). Also, this method requires additional datafill at the middlebox control node in order to map the middlebox source address to a middlebox control node address.
An object of the present invention is to provide a method of controlling a middlebox which overcomes or at least mitigates one or more of the problems noted above.
Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.